#include <iostream>

using namespace std;

class Solution
{
public:
  virtual ~Solution()=0;
};

Solution::~Solution(){
  cout << "Solution destructor called" << endl;
}

class Sol1 : public Solution
{
public:
  Sol1()
  {
    cout << "Sol1 constructor called" << endl;
  }
  ~Sol1()
  {
    cout << "Sol1 destructor called" << endl;
  }
};

int main()
{
  cout << "CodeX" << endl;
  Sol1 *s = new Sol1();
  cout << "" << endl;
  delete s;
  return 0;
}